package cursojava.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class InputForm extends ActionForm {
	private String nombre;
	private String mail;
	private Integer numero; // #Tarea: que pasa si en el formulario cargo un valor
	                        // que no sea Integer????
	
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getMail() {
		return mail;
	}
	public void setMail(String mail) {
		this.mail = mail;
	}
	public void setNumero(Integer numero) {
		this.numero = numero;
	}
	public Integer getNumero() {
		return numero;
	}
	
	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {

		ActionErrors errores = new ActionErrors();
 

		// si el metodo validate() devuelve null significa que el formulario
		// no tuvo errores. 
		// pero si devuelve un objeto ActionErrors (plural) significa que hay errores.
		
		// Para cada error del formulario debemos crear un 
		// objeto de clase ActionError (ojo que NO es plural!)
		// con el mensaje de error a mostrar y agregarlo
		// al objeto ActionErrors con el metodo add().
		
			// vieron que lindo struts?
		
		if( this.getMail().isEmpty() ) {
			errores.add("mail", new ActionMessage("El mail no puede estar vacio", false));
		} 
		if( this.getNombre().isEmpty() ) {
			errores.add("nombre", new ActionMessage("El nombre no puede estar vacio", false));
		}
		
		// # Tarea: a ver quien se anima a agregar los ActionError???
		// ojo que tiene una trampita y tiene que ver con que no esta bueno 
		// escribir los mensajes de error directamente en el codigo
		// Por que? 
		// que pasa si queremos que nuestra web este en castellano e ingles?
		// struts lo resuelve de forma bastante elegante.
		
		if (errores.isEmpty()){
			return null;
		}

		
		return errores;
	}
	
	
}
